
/**
 * 将key代理到target上
 * @param {*} target 目标对象（vm）
 * @param {*} sourceKey 原始key('_data')
 * @param {*} key 需要代理的属性(_data.xx)
 */
export function proxy(target, sourceKey, key) {
  Object.defineProperty(target, key, {
    get() {
      return target[sourceKey][key]
    },
    set(newVal) {
      target[sourceKey][key] = newVal
    }
  })
}

/**
 * 是否为自闭合标签
 * @param {*} tagName 
 */
export function isUnaryTag(tagName) {
  const unartTag = ['input']
  return unartTag.includes(tagName)
}

/**
 * 是否为平台保留节点
 * @param {*} tag 平台保留标签名
 */
export function isReserveTag(tag) {
  const reserveTag = ['div', 'h3', 'span', 'input', 'select', 'option', 'p', 'button', 'template', 'a']
  return reserveTag.includes(tag)
}